package com.um.springboot.starter.orm.entity;

import com.um.springboot.starter.utils.DateUtil;
import com.um.springboot.starter.utils.StringUtil;
import lombok.Data;

import java.util.Date;

/**
 * 范围条件查询实体类
 *
 * @author 邓南辉
 * 日期 2021/4/17
 * 版权所有 广州优匠科技有限公司
 */

@Data
public class RangeEntity {

    //属性名称
    String name;
    //开始值
    Object beginValue;
    //结束值
    Object endValue;

    public SqlRange toSqlRange(){

        SqlRange sqlRange = new SqlRange();
        String sql = "";
        if(!StringUtil.getTrim(beginValue).equals("")){
            sql = name+" >= ? ";

            if(beginValue instanceof Date) {
                Date dateBeginValue = (Date)beginValue;
                sqlRange.getList().add(DateUtil.getDateString(dateBeginValue,"yyyy-MM-dd HH:mm:ss"));
            }else{
                sqlRange.getList().add(beginValue);
            }
        }

        if(!StringUtil.getTrim(endValue).equals("")){
            if(sql.equals("")){
                sql = name+" <= ? ";
            }else{
                sql += " and "+name+" <= ?";
            }

            if(endValue instanceof Date) {
                Date dateEndValue = (Date)endValue;
                sqlRange.getList().add(DateUtil.getDateString(dateEndValue,"yyyy-MM-dd HH:mm:ss"));
            }else{
                sqlRange.getList().add(endValue);
            }
        }


        sqlRange.setSql(sql);
        return sqlRange;
    }
}
